iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
DevOps

DevOps需要的技能樹...(應該)都點得到!系列 第 8

Day 8: Kubernetes Service 與負載均衡機制

  • 分享至 

  • xImage
  •  

本章節「Kubernetes (k8s)」概要

Day 5: Kubernetes 基本架構及安裝
Day 6: 使用 kubectl 指令管理 Kubernetes 集群
Day 7: Kubernetes Pod 與 Deployment 深入解析
Day 8: Kubernetes Service 與負載均衡機制
Day 9: Kubernetes Persistent Volumes (PV) 與 Persistent Volume Claims (PVC)

認識service

Kubernetes Service 為一組動態 Pod 提供穩定的訪問入口,並通過內置的負載均衡機制將流量均勻分配給所有 Pod。NodePort 類型的 Service 將流量通過節點上的指定端口暴露給外部,方便外部客戶端訪問集群內的服務。

為了讓上一篇部署的apache服務能夠被外部訪問,需要暴露端口!

本篇需要包含上一篇部署的deployment.yml才算完整的部署喔

建立service.yml文件

建立目錄跟開啟編輯器應該不用再提醒了吧!

#建立目錄(上一篇已經建立的話可忽略)
mkdir apache
cd apache
sudo nano service.yml

貼入以下內容

apiVersion: v1
kind: Service
metadata:
  name: apache-service
spec:
  selector:
    app: apache
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30080  # 手動指定 NodePort
  type: NodePort

建立了完整的service.yml文件之後
再用套用指令,去吃到這個文件

kubectl apply -f service.yml

再來打開瀏覽器
通過節點 IP 和端口 30080 訪問 Apache 服務:
http://localhost:30080

http://Node-IP:30080

負載均衡測試

確認流量是否均勻分配到不同的pod上面

多次刷新頁面之後直接查看日誌是否有被打到

kubectl logs <pod-name>

通過curl工具輪詢之後再查看pod日誌

for i in {1..10}; do curl http://<Node-IP>:30080; done

至此,就是deployment+service的應用了!


上一篇
Day 7: Kubernetes Pod 與 Deployment 深入解析
下一篇
Day 9: Kubernetes PV 與 PVC
系列文
DevOps需要的技能樹...(應該)都點得到!25
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言